package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 一.使用 JDBC 链接 数据库 Mysql
 *   1。maven仓库下载对应mysql版本的jar包
 *   2.mysql服务器必须 启动【WampServer集成】
 *   3.加载数据库驱动【mysql】
 *   4.获取数据库链接【mysql-用户名 root 最高权限，密码 空】
 * 二.链接成功
 *   1.test 库 创建表 person 给3个字段 id、name、address
 *   2.静态sql增加
 */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC 规范标准 要去：链接对应数据库必须先注册‘驱动程序’
        // 告诉JDBC 现在链接什么种类的数据库
        //Class.forName() 通过反射加载对应数据库版本驱动类
        // 对应数据库固定注册写法：Mysql
        Class.forName("com.mysql.jdbc.Driver");
        //4.获取mysql数据库的链接
        String username="root"; //mysql数据库用户名
        String password="";     //mysql数据库密码
        // url链接地址：mysql固定结构
        // jdbc:mysql://ip地址：段楼号/库名？characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
        // DriverManager 工具类，功能获取数据库链接：url、用户名和密码
        // getConnection方法，链接不同版本数据库的方法,链接成功，返回Connection对象
        Connection conn =
                DriverManager.getConnection(url,username,password);
        System.out.println("测试链接是否成功"+conn);

        //5.编写静态添加sql操作【字符串】
        String sql="insert into person values(2,'林家屯','林家屯何家村')";
        //练习：增加3条数据，删除一条数据，修改一条数据
        //String sql="delect from person where id=2";
        //String sql="update person set name='林家屯' where id=1";

        //6.执行静态sql【增加操作】
        //conn.createStatement() 执行数据库中增删改操作  返回Statement对象
        //Statement对象执行静态sql
        //6.1具备执行数据库中增删改操作
        Statement st=conn.createStatement();
        //6.2执行静态sql:st.executeLargeUpdate(静态sql);增删改操作，返回值int类型
        int rows=st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
        //7.关闭资源
        st.close();conn.close();
    }
}
/*
* 昨天重点
* 1.JDBC规范 链接各种数据库 数据库闭源
* 2.maven仓库下载对应jar包---java--面向对象【类】
*   mysql版本 5.5 mysqljdbc
*   oracle版本 10g ojdbc8
* 3.编辑步骤--JDBC规范 --核心逻辑开发者完成
* 3.1加载驱动，jdbc链接数据库，每个数据库都有自己驱动
*   Class.forName("com.mysql.jdbc.Driver")  反射技术【固定结构】
*   mysql版本5.X  驱动：com.mysql.jdbc.Driver
*   mysql版本8.X  驱动：com.mysql.cj.jdbc.Driver
*   Java-->JDBC标准规范-->Driver接口:驱动接口，各种数据库JDBC承认写对应驱动接口【所有数据库承认接口，确定什么数据库】
* 3.2获取链接，MySQL数据库，用户名，密码，url地址用字符串接收
*    String username="root";   --Java写法
*    String password="";
*    url-->MySQL链接路径--固定结构
*    jdbc:mysql://localhost:3308/mi?characterEncoding=UTF-8
*    协议:子协议://ip地址:端口号/库名?设置字符集
*                本机
*                127.0.0.1
*    Java获取链接--通过DriverManager接口：工具类，可以链接各种数据库
*    Connection con=DriverManager.getConnection(url,username,password);
*    具体链接方案给方法：getConnection()地址，用户名，密码确定无误
*    返回一个对象Connection对象【Java与对应数据库链接】
*    打印Connection对象--打印对象--链接成功
* 4.执行sql:JDBC只能做CRUD增删改查--MySQL创建表，库
* 4.1MySQL-->使用库-->创建库
* 4.2Java--->CUD增改删操作
* 4.3Java--->确定数据库链接成功[con]-->调取增删改查操作
*        --->返回Statement对象：执行静态sql
*    代码：Statement st=con.createStatement();
* 4.4java--->Statement对象提供方法：executeUpdate();
*        --->此方法执行sql:增，删，改操作--成功几条记录
*    代码：int rows=st.executeUpdate(sql);
*    打桩：打印成功多少条记录
* 5.关闭资源【倒置法：Statement--执行sql对象,Connection--链接数据库成功对象】
* */






















